package org.dxy.infrastructure.persistent.service;

import com.github.yulichang.base.MPJBaseService;
import org.dxy.infrastructure.persistent.po.DomainEventPo;

import java.util.List;

/**
 * 领域事件服务接口
 * @author dxy
 */
public interface DomainEventService extends MPJBaseService<DomainEventPo> {


    Integer findMaxIndexByAggregateId(Long aggregateId);

    List<DomainEventPo> getEventListByAggregateId(Long workOrderId);

    /**
     * 根据事件类型获取事件列表
     * @param eventType 事件类型
     * @return 事件列表
     */
    List<DomainEventPo> getEventsByEventType(String eventType);

    boolean markEventsPublished(List<Long> eventIds);
}